1. Field of the Invention
The present invention relates to dataports for digital data systems and, more particularly, to apparatus and methods for implementing a latching loopback test procedure in a digital data system.
2. Description of the Prior Art
Loopback procedures are commonly used for testing data transmission systems and, in particular, for isolating system faults. When loopbacks are used, data received at a predetermined location in the system is sent back to its origin, where it can be compared to the transmitted data to identify transmission errors. Loopback tests can be initiated at almost any point in a transmission system where test facilities may be located.
In order to initiate a loopback test, the test equipment must send out control signals which must be sensed prior to initiating the loopback. Due to the critical nature of a loopback and the potential difficulties that could arise in the event of an erroneous initiation of loopback, it is essential that the loopback only be initiated when wanted. Due to inherent error levels in data transmission systems, standards have been set so that loopback is only initiated if M out of N control bytes are accurately received from the test equipment.
Digital data services are provided by operating telephone companies on standard telephone transmission lines. The specifications for digital data service have been established by Bell Communications Research, Inc., and an overall description of the service may be found in "Digital Data System", The Bell System Technical Journal, May-June 1975, Vol. 54, No. 5. Data ports for implementing the digital data service are usually compatible with PCM channel banks, as set forth in PUB 43801, "Digital Channel Banks--Requirements and Objectives", November, 1982. The specifications for data port channel cards providing digital data service have been established by Bell Communications Research, Inc. and have been published as Technical Advisory TA-TSY-000077, Issue 3, entitled "Digital Channel Banks--Requirements for Data Port Channel Unit Functions".
The above-referenced technical advisory suggests an optional latching loopback feature, where the loopback is initiated by a series of control codes transmitted by test equipment, and the loopback is held until released by the transmission of a particular control code. The Technical Advisory suggests that the control code processing algorithm should take on an "M out of N" form, where M is very close in value to N, such as 31 out of 32, 62 out of 64, and 8 out of 10 bytes being sensed as the desired control byte.
M out of N detection schemes are not new, and may be implemented in many different ways. A first example of a prior art M out of N detection system uses an N byte First-In/First-Out (FIFO) stack and performs N comparisons each time a new byte is entered into the FIFO. As data is shifted through the FIFO, the number of bytes currently stored in the FIFO that are identical to a target byte are counted. If the number of proper comparisons equals M, the M out of N criteria has been established.
In another form of M out of N detection, an N byte FIFO is also used in conjunction with a counter. The process requires two comparisons per FIFO entry. As data is shifted through the FIFO, the counter is incremented if the byte entering the FIFO is the desired target byte, while the counter is decremented if the byte exiting the FIFO is the target byte. When the running count reaches M, the required M out of N target bytes have been identified.
The above methods of M out of N detection require an N byte-sized FIFO, plus FIFO management software and storage. This imposes rigorous requirements on the system which is searching for the M out of N criteria. Due to the large number of comparisons required, the system needs a relatively fast processor, large RAM storage, and a significant amount of program memory for FIFO management. The time required to execute the afore-mentioned methods will depend upon the particular system executing the algorithm; but in general, both methods will require additional time for FIFO management and for the large number of comparisons that must be made.
The RAM storage requirements for the above-mentioned methods will include N bytes for FIFO storage, and storage space for the running count. The storage required for program memory will depend upon the particular language and system executing the algorithm; however, both methods will require program memory storage for FIFO management.
Thus, the prior art methods of determining M out of N are rather simple in concept but require considerable storage capacity and the use of fast microprocessors to handle the large number of comparisons that must be executed.